package com.marketingcenter.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;

/**
 * 优惠券实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "coupon")
public class Coupon extends Promotion {

    private static final long serialVersionUID = 1L;

    /**
     * 面值类型：1-固定金额，2-百分比
     */
    private Integer valueType;

    /**
     * 面值金额
     */
    private BigDecimal value;

    /**
     * 使用门槛金额
     */
    private BigDecimal minSpend;

    /**
     * 每人限领数量
     */
    private Integer maxPerUser;

    /**
     * 总发行量
     */
    private Integer totalQuantity;

    /**
     * 已领取数量
     */
    private Integer receivedQuantity;

    /**
     * 已使用数量
     */
    private Integer usedQuantity;

    /**
     * 使用范围：1-全场通用，2-指定商品，3-指定分类
     */
    private Integer useScope;

    /**
     * 适用商品/分类ID列表，JSON格式存储
     */
    private String applicableIds;

    /**
     * 是否叠加使用
     */
    private Boolean canStack;

    /**
     * 有效期类型：1-固定日期，2-领取后N天有效
     */
    private Integer validityType;

    /**
     * 领取后有效期天数（当validityType=2时有效）
     */
    private Integer validDays;

}